Computer systems running interactive virtual environments (such as, for example, video games or flight simulators) may be run in client/server environments. The client and server may communicate via a computer network (such as, for example, a proprietary network, or the Internet). In such a client/server environment, the simulation of the virtual interactive environment is typically partitioned. That is, either the client or the server performs the simulation of the virtual interactive environment.
Whether the client or the server performs the simulation, the simulation is the determination of the subsequent state of the virtual interactive environment. Given the relevant characteristics of objects in a virtual interactive environment in a current state, the simulation determines each of the subsequent relevant characteristics in a subsequent state. For example, in a first state of the virtual interactive environment, a ball may be red, and deformed upon impact with the ground. In a subsequent state, the ball may still be red, but may be bouncing upwards at a certain speed. For each subsequent state, the simulation determines each of these characteristics, such as, for example, size, color, deformity, velocity, direction, rotation vectors, etc., based at least upon the characteristics of the previous state.
When the client computes the simulation, the response time to the user input may be optimized, as this eliminates the latency caused by communication with the server. Therefore, historically, calculations for interactive virtual environments have typically been processed on the client.
Some interactive virtual environments, though, have become so complex that the processing demands may exceed the capabilities of the single processor available on the client. For example, the simulation of running water is relatively compute intensive. Additionally, multi-user virtual interactive environments typically require more computing power. The server, which will normally have more computing power than the client, is often better suited to perform such sophisticated simulations. This approach, though, has the limitation discussed above, namely, communication with the server delays the response time.
Accordingly, a need has developed in the art for overcoming the above problem.